package com.hawk.eye.server.domain.vo.req;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.time.LocalDateTime;
import java.util.Date;

/**
 *
 * @author salad
 * @date 2023-10-23
 */
@Data
public class ProblemRecordReqVO {

    /**
     *
     */
    private Long id;

    /**
     *
     */
    private String traceId;


    private Long serviceId;


    private Long baseAlarmId;


    @NotBlank(message = "缺陷名称不能为空")
    @Size(max = 50, message = "缺陷名称长度必须在1-50之间")
    private String problemName;

    /**
     *
     */
    private Long disposeUser;

    /**
     *
     */
    @NotBlank(message = "缺陷描述不能为空")
    @Size(max = 2000, message = "缺陷描述长度必须在1-2000之间")
    private String problemDesc;

    /**
     *
     */
    private String problemCause;

    /**
     *
     */
    @Size(max = 2000, message = "解决方案长度必须在2000以内")
    private String resolveDesc;

    /**
     *
     */
    private String stackHash;

    /**
     *
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime recordTime;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime alarmTime;
    /**
     *
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime resolveTime;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime[] alarmTimes;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime[] recordTimes;

    /**
     *
     */
    private String problemType;
    /**
     *
     */
    private String problemLevel;
    

    private Integer[] problemStatus;

    private Integer[] problemCauses;

    private Integer[] problemLevels;

}
